﻿using System.Reflection.Metadata.Ecma335;
using System.Security.Cryptography.X509Certificates;

namespace MySixthCSharp
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //输入圆盘个数
            Console.Write("圆盘层数：");
            string input = Console.ReadLine();
            int number = Convert.ToInt32(input);


            //圆盘移动的具体操作
            operation(number, 'a', 'b', 'c');//a为初始位置，b为辅助位置，c为结果位置
            Console.ReadKey();
        }

        protected static void operation(int number, char x, char y, char z)
        {
            if (number == 1) 
                Console.WriteLine($"{number}:{x}--->{z}");
            else
            {
               //把number-1层圆盘放到b,在第number-1个圆盘，把b当作初始位置，c为辅助位置
                operation(number-1, x, z, y);
                
                
                //将第n层圆盘放到结果位置上
                Console.WriteLine($"{number}:{x}--->{z}");


                //把第n-1层圆盘放到结果位置,在n-2个圆盘，a作为辅助位置，b作为初始位置
                operation(number-1, y,x,z);
            }
            return;
        }
    }
}